{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "134e7f9d",
   "metadata": {},
   "source": [
    "# Demo 10: Device\n",
    "\n",
    "All other demos have by default used device = 'cpu'. In case we want to use cuda, we should pass the device argument to model and dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "7a4ac1e1-84ba-4bc3-91b6-a776a5e7711c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cuda\n"
     ]
    }
   ],
   "source": [
    "from kan import KAN, create_dataset\n",
    "import torch\n",
    "\n",
    "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
    "print(device)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "2075ef56",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "train loss: 6.70e-03 | test loss: 6.83e-03 | reg: 7.91e+00 : 100%|██| 50/50 [00:25<00:00,  1.99it/s]\n"
     ]
    }
   ],
   "source": [
    "model = KAN(width=[4,2,1,1], grid=3, k=3, seed=0, device=device)\n",
    "f = lambda x: torch.exp((torch.sin(torch.pi*(x[:,[0]]**2+x[:,[1]]**2))+torch.sin(torch.pi*(x[:,[2]]**2+x[:,[3]]**2)))/2)\n",
    "dataset = create_dataset(f, n_var=4, train_num=3000, device=device)\n",
    "\n",
    "# train the model\n",
    "#model.train(dataset, opt=\"LBFGS\", steps=20, lamb=1e-3, lamb_entropy=2.);\n",
    "model.train(dataset, opt=\"LBFGS\", steps=50, lamb=5e-5, lamb_entropy=2.);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "3acdcdee-71ca-42a1-98aa-7f7df4a29077",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Ojo6cO7cOfzsZz/r9jWgUqmQnp6Ozz//nDdYboLh4mRbt24FANx99909et2ECROg0WiwfPlyR5RF5DQFBQUAgIkTJ3b7NZIkYe7cuTCZTKipqXFUaSQjhouTvfHGG4iOju72kFgXlUqFm2++GZs2beKdG7m19evXIywsDEFBQT163YgRI6BSqfD+++87qDKSE8PFiWw2G06ePIlZs2b1eBtxSZLw1FNPwWQy4fTp0w6qkMixhBA4c+YMbr/99h5fA11DY//61794g+UGGC5O1N7ejpycHMydO7dXrx81ahR8fX3x8ssvy1sYkZO0t7dj0KBBmDZtWo9f27Wg0mQy9elES3IOhosThYaG4v3330dCQkKvXq9Wq3H77bdj69at3MiP3FJwcDBee+21Xl8DI0eOhEqlwrp162SujOTGcHEytVrdp5P1nnjiCXR0dODEiRMyVkXkPL6+vr2+Bno7a0wIwaE0J2O4uJlhw4bBz88PL730ktKlEDmdJEmYN28eTCYTqquru/261tZWLF++HCaTyYHV0cUYLm5GpVLhzjvvxOeff84T+sgrDR8+HBqNBu+88063X7N582Zs2bIFarXagZXRxRgubuiJJ56AxWK5sF7gesxmMz777DNYLBYHV0bkeGq1GpmZmfjqq6+69exRCIHNmzcjJSUFvr6+TqiQAIaLWxo4cCD69euH3/3ud90aR964cSPmzZsHo9HohOqIHG/+/Pkwm804fvz4dX+2sbERLS0tvZ6lSb3DcHFDkiThl7/8JY4cOYLW1tZr/qwQAn/6058wcOBAhIWFOalCIsdKSkpCUFAQ8vLyrnuD9fbbb0OlUmHChAlOqo4AhovbeuCBByBJEl555ZVr/tyRI0dQW1uL559/3kmVETmeJEmYOXMmiouL0d7eftWfs1qt2L59O3JycqDRaJxYITFc3FRAQABuvfVWrF69+qpHIAsh8OSTTyI8PBy33nqrkyskcqzp06dDkiS89dZbV+297NixAxaLpUcbxZI8GC5uSpIk/OEPf0BHRwfefPPNK15cBw8exOHDh7F06VKoVGxq8iz+/v646aab8PHHH6Ojo+MHf2+1WrFixQqkpqZe97RLkh9/47ixxMRE/OhHP8If//hHGAyGS/7ObDZjwYIFiI+Pxz333KNQhUSOI0kSHnnkEdhsth88exFC4N1330V7ezue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",
      "text/plain": [
       "<Figure size 500x600 with 12 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8230d562-2635-4adc-b566-06ac679b166a",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
